package 树;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName 从上到下打印二叉树.java
 * @Description TODO
 * @createTime 2020年10月06日 20:41:00
 *
 * 从上到下按层打印二叉树，同一层的节点按从左到右的顺序打印，每一层打印到一行。
 *
 *  
 *
 * 例如:
 * 给定二叉树: [3,9,20,null,null,15,7],
 *
 *     3
 *    / \
 *   9  20
 *     /  \
 *    15   7
 * 返回其层次遍历结果：
 *
 * [
 *   [3],
 *   [9,20],
 *   [15,7]
 * ]
 *
 * 思路：创建一个数组 第几层就存到下标为几的数组中  再用递归遍历整个树
 *
 */
public class 从上到下打印二叉树 {
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */

    /*
    * class Solution {
   private List<List<Integer>> list= new ArrayList<>();

    public List<List<Integer>> levelOrder(TreeNode root) {
        dfs(0,root);
        return list;
    }

    public void dfs(int length,TreeNode root){
        if(root==null){
            return;
        }
        if(length==list.size()){
            list.add(new ArrayList<>());
            }
        list.get(length).add(root.val);
        dfs(length+1,root.left);
        dfs(length+1,root.right);
        }



    }*/
}
